この項では、TimesTenで、DSNにPassThrough属性を設定して、SQLをOracleにパススルーするようにする方法について説明します。パススルー機能の詳細は、『Oracle TimesTen In-Memory Database概要』のCache Connect to Oracleのパススルー機能に関する説明を参照してください。
手順は次のとおりです。
Windowsの場合は、「TimesTenアカウントの作成」でcgDSN
に対して指定した属性と同じ属性で、cgPT2という新しいTimesTenシステム・データソース(システムDSN)を作成します。また、キャッシュ・グループに存在しないOracle表の問合せおよびプロシージャ・コールを直接Oracleに渡すには、PassThrough属性値を2に設定します。
cgPT2
に対して、次の設定を行います。
SELECT value FROM nls_database_parameters
WHERE parameter = 'NLS_CHARACTERSET';
他のすべての設定には、デフォルト値を使用します。
[cgPT2]
Datastore=/temp/cgPT2d
PermSize=16
TempSize=16
UID=testuser
OracleId=system1
OraclePwd=mypsswrd
Passthrough=2
DatabaseCharacterSet= Oracleデータベース・キャラクタ・セット
(Windowsの説明を参照)
キャッシュ・グループに対するDSN定義の詳細は、「キャッシュされた表のDSN定義」を参照してください。
TimesTenウィンドウで、DSN cgPT2
に接続し、キャッシュ管理ユーザーIDおよびパスワードを設定してキャッシュ・エージェントを起動し、「手順2: キャッシュ・グループの作成」で作成したものと同じREADONLYキャッシュ・グループを作成します。
ttIsql cgPT2
Command> call ttCacheUidPwdSet('testuser','mypsswrd');
Command> call ttCacheStart();
Command> CREATE READONLY CACHE GROUP readcache
> AUTOREFRESH INTERVAL 5 SECONDS
> FROM readtab
> a NUMBER NOT NULL PRIMARY KEY, b VARCHAR2(31));
Oracle表の内容をキャッシュ・グループ表にロードします。
Command> LOAD CACHE GROUP readcache COMMIT EVERY 256 ROWS;
ttIsqlを使用して、数行をreadtab
に挿入します。
Command> INSERT INTO readtab VALUES (5, 'Just');
Command> INSERT INTO readtab VALUES (6, 'Passing');
Command> INSERT INTO readtab VALUES (7, 'Through');
SQL*Plusを使用して、readtab
表の内容を確認します。
SQL> SELECT * FROM readtab;
A B
---------- -------------------------------
1 hello
2 world
3 Hello
4 Again
5 Just
6 Passing
7 Through
7 rows selected.
次に、ttIsqlを使用して、readtab
表の内容を確認します。
Command> SELECT * FROM readtab;
< 1, hello >
< 2, world >
< 3, Hello >
< 4, Again >
< 5, Just >
< 6, Passing >
< 7, Through >
7 rows found
ttIsqlを使用して、DROP CACHE GROUP文を入力し、TimesTenデータ・ストアからキャッシュ・グループを削除します。
Command> DROP CACHE GROUP readcache;
ttCacheStopプロシージャをコールして、データ・ストアのキャッシュ・エージェントを停止します。
Command> call ttCacheStop();